#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main1()
{
    char *s1 = calloc(10, sizeof(char));//在堆中分配10个char
    char *s2 = calloc(10, sizeof(char));

    strcpy(s1, "123456789");
    strcpy(s2, "abcdef");

    //用realloc增加的空间也不会自动清零，需要手动清零
    s1 = realloc(s1, strlen(s1) + strlen(s2) + 1);//根据s1和s2的实际长度扩充s1
    strcat(s1, s2);
    printf("%s\n", s1);

    free(s1);
    free(s2);

    return 0;
}

int main()
{
    char *s1 = malloc(100);
    //char *p = realloc(s1, 200);
    char *p = realloc(s1, 200000000000);
    //realloc 自动把s1释放掉了，不再需要我们手动去释放了
    if(s1 == p)
    {
        printf("相同\n");
    }
    else
    {
        printf("不同\n");
    }
    free(p);
    return 0;
}
